package com.bidevalution.business.service;

import com.bidevalution.business.context.UserRoleType;
import com.bidevalution.dao.entity.BeSectionInfo;
import com.qtp.common.core.TSUser;
import com.qtp.core.model.Paging;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.qtp.core.model.Response;
import org.apache.ibatis.annotations.Param;

public interface BeSectionInfoService {
    /**
     * 获取今日开标项目分页数据
     *
     * @param paramsMap
     * @return
     * @throws Exception
     */
    Paging<List<BeSectionInfo>> getBeSectionListPaging(Map<String, Object> paramsMap) throws Exception;

    List<BeSectionInfo> getLiveBeSectionList();

    List<BeSectionInfo> getLiveListByRoom(String roomName);

    List<BeSectionInfo> getChatSectionList();
  
    Paging<List<BeSectionInfo>> getAllList(Map<String, Object> paramsMap) throws Exception;

    /**
     * 根据id获取标段信息
     *
     * @param seqId
     * @return
     */
    BeSectionInfo getBeSectionInfoById(String seqId);

    UserRoleType getUserRoleType(String sectionId, TSUser loginUser, List<String> roleList) throws Exception;

    /**
     * 更新标段状态
     *
     * @param sectionId
     * @param sectionStage
     * @return
     * @throws Exception
     */
    Boolean updateSectionStage(String sectionId, String sectionStage) throws Exception;

    /**
     * 获取今日开标项目数据
     *
     * @return
     */
    List<BeSectionInfo> getTodaySectionList() throws Exception;

    /**
     * 获取招标代理今日评审项目列表
     *
     * @param paramsMap
     * @return
     * @throws Exception
     */
    List<BeSectionInfo> getAgentSectionList(Map<String, Object> paramsMap) throws Exception;

    /**
     * 获取专家权限下今日评审项目列表
     * @param loginName 专家登录名
     * @return
     * @throws Exception
     */
    List<BeSectionInfo> getExpertSectionList(String loginName) throws Exception;
    /**
     * 根据标段时间查询标段
     * @param @param startDate
     * @param @param endDate
     * @param @return 参数
     * @return List<BeSectionInfo> 返回类型
     * @throws
     */
    List<BeSectionInfo> getListByBidOpenTime(Date startDate,Date endDate);
    
    
    List<BeSectionInfo> getAllSectionList(String orgCode,String areaId,String sectionNam, String sectionCode);

    /**
     * 代理点击评审开始的更新操作
     *
     * @param sectionId
     * @throws Exception
     */
    Response<String> updateReviewStart(String sectionId) throws Exception;

    /**
     * 更新标评审状态
     *
     * @param sectionId
     * @throws Exception
     */
    boolean updateSectionInfoById(String sectionId) throws Exception;
    
    BeSectionInfo selectByCode(String code);

    Response deleteBySectionId(String sectionId);

    Response deleteEnterprise(String sectionId, String enterpriseId);
}
